iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 4
0
DevOps

Hashicorp 0 到 0.003系列 第 4

Day 4. Consul server 參數設定與啟動

  • 分享至 

  • xImage
  •  

參數設定

Consul 的參數設定有三種方式: Environment Variables、Command-line Options與Configuration Files.

Environment Variables: 設定在OS環境變數裡,Consul會讀取環境變數來做為預設值。

  • Note:Command-line Options與Configuration Files的優先權是大於Environment Variables,Command-line Options又大於Configuration Files.

Command-line Option: 參數透過指令設定,當所需的設定越來越多時,會不容易閱讀與維護。

Configuration Files: 支援HCL與JSON,設定檔結構化,容易閱讀與維護,此外部分參數的修改可以直接reload生效。

  • Note:當有多個設定檔時,Consul會依據命名的順序載入,例如: acl.hcl 會在 server_config.hcl前處理,後處理的設定檔會合併到前面的,如有重複的參數,則後面會覆蓋前面。

這三種支援的參數多寡不同,使用的方式情境也不同,例如”telemetry”就只有configuration file有,所以今天會介紹使用Configuration Files來設定Consul.

  1. 在開始前我們先新增三個目錄給Consul使用,分別是conf, logs, data.
    conf: 放置設定檔,ACL,Policy,Service register,Configuration Entries等等。
    logs: 放置Consul server logs.
    data: 放置Consul啟動會存放的資料。

  2. 編輯我們的設定檔,命名為consul-server.hcl,設定檔支援json與Hashicorp的hcl兩種,這裡以hcl示範。

# consul-server.hcl

server = true
bootstrap_expect = 1
ui = true
datacenter = "ithome"
data_dir = "/home/ec2-user/consul/data"
disable_update_check = true
enable_local_script_checks = true

node_name = "consul-server-01"
client_addr = "10.168.1.175"
bind_addr = "10.168.1.175"

connect {
  enabled = true
}

log_level = "DEBUG"
log_file = "/vault/hashicorp/consul/logs/"
log_rotate_duration = "24h"
log_rotate_max_files = 0

server: 告訴Consul這個agent要作為server的腳色,如果設為false則為client的腳色。

bootstrap_expect: 預計要啟動幾個server,若為三台Consul server做HA, 則設定為3.

ui: 開啟web UI的功能。

datacenter: 設定datacenter的名稱,沒設定的話預設是”dc1”.

data_dir: 用來儲存Consul放資料的地方。

disable_update_check: 更新檢查。

enable_local_script_checks: 啟用本地端設定檔腳本檢查。

node_name: 給定名稱,預設是使用hostname.

client_addr: 提供給外部連線Consul使用的IP, 例如: Web UI, HTTP等,預設是”127.0.0.1”

bind_addr: Consul cluster內部溝通用的IP,預設是”0.0.0.0”

connect {enabled = true} : 在Consul cluster中,設定該agent是否允許連線。

log_level: 預設是”info”,另外還有"trace", "debug", "info", "warn", and "err”.

log_file: log file 路徑,檔名會是consul-{timestamp}.log

log_rotate_duration: log紀錄多久時間rotate一次。

log_rotate_max_files: 設定最多rotate幾個檔案。

啟動

設定檔都編寫完成後,可以使用參數”-config-dir” 帶入設定檔:

$ consul agent -config-dir=./conf/

啟動後我們連線到 http://10.168.1.175:8500 ,看到下面的頁面,就成功了。

停止

.如果沒有背景執行,你會看到log一直印出來,要停止按ctrl+c即可。
.有背景執行,先ps -ef |grep consul,再kill -9 PID即可。


上一篇
Day 3. Consul 安裝與啟動DEV mode
下一篇
Day 5. Consul ACL
系列文
Hashicorp 0 到 0.00330
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言